import {
  Entity,
  Column,
  PrimaryGeneratedColumn,
  CreateDateColumn,
  UpdateDateColumn,
  ManyToOne,
  JoinColumn,
} from 'typeorm';
import { User } from '../../user/entities';

// 平台类型枚举
export enum PlatformType {
  STANDARD = 'standard', // 标准版
  CUSTOM = 'custom', // 定制版
}

// 项目类型枚举
export enum ProjectType {
  MOBILE_APP = 'mobile_app', // 移动端App
  WORKSTATION = 'workstation', // 工作站
  CONSOLE = 'console', // 工作台
  CABINET = 'cabinet', // 一代柜
  FILE_CABINET = 'file_cabinet', // 文件柜
}

@Entity()
export class Sourcemap {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ name: 'filename', length: 255 })
  filename: string; // 文件名

  @Column({ name: 'filepath', length: 255 })
  filepath: string; // 文件路径

  @Column({
    name: 'platform_type',
    type: 'enum',
    enum: PlatformType,
    default: PlatformType.STANDARD,
  })
  platformType: PlatformType; // 平台类型

  @Column({ name: 'customer_name', length: 100, nullable: true })
  customerName: string; // 私有云客户名称

  @Column({
    name: 'project_type',
    type: 'enum',
    enum: ProjectType,
  })
  projectType: ProjectType; // 项目类型

  @Column({ name: 'version', length: 50 })
  version: string; // 版本号

  @CreateDateColumn({ name: 'create_time' })
  createTime: Date; // 创建时间

  @UpdateDateColumn({ name: 'update_time' })
  updateTime: Date; // 更新时间
}
